package com.huanzhidadi.single.collection;

import com.alibaba.fastjson2.JSON;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class ListIteratorTest {
    public static void main(String[] args) {
        List<String> l1 = new ArrayList();
        l1.add("aaa");
        l1.add("bbb");
        l1.add("ccc");
        l1.add("ddd");
        l1.add("eee");
        System.out.println("初始化列表：" + JSON.toJSONString(l1));

        ListIterator<String> listIterator = l1.listIterator(2);
        listIterator.add("111");
        // 不能直接调set方法，需要先获取元素
        // 见java.util.ArrayList.ListItr.set
        while (listIterator.hasNext()) {
            String temp = listIterator.next();
            if ("ddd".equals(temp)) {
                listIterator.set("222");
            }
        }

        /*listIterator = l1.listIterator(0);
        while (listIterator.hasNext()) {
            String temp = listIterator.next();
            if ("111".equals(temp)) {
                listIterator.remove();
            }
        }*/
        System.out.println("结果：" + JSON.toJSONString(l1));


        listIterator = l1.listIterator(1);
        // forEachRemaining是Iterator的方法，forEach是集合本身的方法
        listIterator.forEachRemaining(System.out::println);

    }
}
